home *** CD-ROM | disk | FTP | other *** search
- --Common Level Start Code
-
- function LevelStartup()
- G.Create( "MenuData/HudCog.xml" );
- G.Create( "Data/GameCamera.xml" );
- G.Create( "Data/CursorCog.xml" );
-
- MainLevel = G.Create( "Data/QuickStartLevelCog.xml" );
- MainLevel.CreateLevel();
-
- G.SetInvSpeed( 20 );
- G.DisableTrap("pit");
-
- G.SetLightTime( 0 );
- G.PostP( "None" );
- --TraitorTalk(" ");
-
- -- Editing Traps
- G.DisableTrap("wall2");
- G.DisableTrap("tree");
- G.DisableTrap("bush");
- G.DisableTrap("pinetree");
- G.DisableTrap("largepinetree");
- G.DisableTrap("mushroom");
- G.DisableTrap("church");
- G.DisableTrap("rock");
- G.DisableTrap("vase");
- G.DisableTrap("pitdoodad");
- G.DisableTrap("bus");
-
- --G.SetLoopingMusic( "Music/Da_Pipes.mp3" );
- -- G.PlayMusic();
-
- HUD.EnterLevel();
- G.SetGameState( InLevel );
- G.EarnPoints( 150 );
-
- HUD.Message( "VictoryCondition" , "SetText", "Grab invaders with your hand. \nDrop walls and traps to help defend. \nDefeat 1000 Invaders!" );
- HUD.Message( "LossCondition" , "SetText", "If the Tower falls you lose" );
-
- ----------------------------------------
- -- NEW SPAWNING STUFF
- ----------------------------------------
-
- VarietyWave = createSpawnStruct()
-
- VarietyWave.Prob.Miner = 0.3;
- VarietyWave.Prob.Squad = 0.5;
- VarietyWave.Prob.Bomber = 0.2;
- VarietyWave.Prob.Kamikaze = 0.2;
- VarietyWave.Prob.Driller = 0.25;
- VarietyWave.Prob.Psychic = 0.3;
- VarietyWave.Prob.Ninja = 0.2;
- VarietyWave.Prob.Spiker = 0.25;
- VarietyWave.Prob.Stacker = 0.8;
- VarietyWave.Prob.Basic = 1.0;
-
- VarietyWave.SpawnSpeed = 0.5;
- VarietyWave.MaxSpawn = 25;
- VarietyWave.GroupPercent = 0.25;
- VarietyWave.GroupSize = 3;
- VarietyWave.WhereToSpawn = CircleAroundTower
-
- AddWave( "VarietyAttack", VarietyWave );
-
-
- local tempPos = Tower.GetPosition()
- Camera.LookAtPosition( tempPos )
-
- ColorTextPopup( "Challenge Mode!", Color(1,1,1,1) )
-
- end
-
- LevelStartup()
-
- --function LevelIntro()
- --end
-
- function LevelSequence()
-
- -- There are several waves that have been made:
- -- Randomly choose from them, and spawn the guys.
-
- GameWait( 30 );
-
- -- For right now, just keep increasing the spawning speed:
- StopWave( "VarietyAttack" );
-
- VarietyWave.SpawnSpeed = VarietyWave.SpawnSpeed + 0.1; -- Max speed in -- minutes (1.0 in - minutes)
- if VarietyWave.SpawnSpeed > 3 then
- VarietyWave.SpawnSpeed = 3
- end
-
- VarietyWave.MaxSpawn = VarietyWave.MaxSpawn + 2; -- Max spawn in 6.25 minutes
-
- if VarietyWave.MaxSpawn > 50 then
- VarietyWave.MaxSpawn = 50
- end
-
- VarietyWave.Prob.Miner = 0.3;
- VarietyWave.Prob.Squad = 0.5;
- VarietyWave.Prob.Bomber = 0.2;
- VarietyWave.Prob.Kamikaze = 0.2;
- VarietyWave.Prob.Driller = 0.25;
- VarietyWave.Prob.Psychic = 0.3;
- VarietyWave.Prob.Ninja = 0.2;
- VarietyWave.Prob.Spiker = 0.25;
- VarietyWave.Prob.Stacker = 0.8;
- VarietyWave.Prob.Basic = 1.0;
-
- -- Special wave chance:
- for invadername,prob in pairs( VarietyWave.Prob ) do
- if( math.random() < 0.1 ) then -- 66% chance of special wave (10% -> 4% by type)
- VarietyWave.Prob[ invadername ] = 10.;
- ColorTextPopup( invadername .. " Wave!", Color(0,0.85,0,1) )
- break
- end
- end
-
- GameWait( 5 );
-
- AddWave( "VarietyAttack", VarietyWave );
-
- end
-
-
- levelRoutine = coroutine.create( LevelSequence )
-
- function LevelVictory()
-
- local tower = G.GetCogName("Tower");
-
- if( not tower.IsValid() ) then
- G.SetGameState( Defeat );
- end
-
- if( Kills >= 1000 ) then
- G.SetGameState( Victory );
- StopWave( "VarietyAttack" );
- G.KillAllInvaders();--Should Do this on any timed mission
- end
-
- -- Update the spawning stuff:
- if( levelRoutine ) then
- local con, error = coroutine.resume( levelRoutine )
-
- -- Restart the Level Sequence:
- if( con == false and GameState == InLevel ) then
- levelRoutine = coroutine.create( LevelSequence )
- end
- end
-
-
-
- if( not( GameState == InLevel ) ) then
- dofile( "Scripts/GameOver.lua" ); -- The gameover script should do all exit functionality:
- GMain["LevelVictory"] = nil;
- end
-
- end
-
- GMain["LevelVictory"] = LevelVictory;
-